延續上一篇,此篇將繼續介紹如何將拆解的日期重新合併,接下來的操作會比較繁瑣,但如果都能跟得上的話,就代表你對Kettle的操作熟練度又更上一層樓囉!此篇會介紹到[Transform]Select Values與[Transform]String operations
Select Values是一個專門處理刪除欄位、重新命名欄位與選擇欄位的Step、主要分成三種類型:
String operations可以針對字串來做填位、或是大小寫的調整
將上一篇分隔的民國年、月與日欄位做字串相加,得到一個民國年的生日欄位,例如:76/05/22
有六大步驟:
因為要做字串的相加,必須把原本的民國年、月、日的型態從Integer改為String
將民國年、月、日的型態改為String
因為月份與日是Integer型態,所以1月份會以1顯示,但這樣會造成後續組成完整日期時會少一個字串的長度,所以我們必須盡行補位的處理
Trim type:修剪的類型
Padding:向左填充或向右填充
Pad char:指定填充的文字
Pad Length:指定填充的長度
可以觀察看月與日已經完成補0囉
我們會使用/來進行字串的相加,所以需要在新增一個常數,覺得要使用哪個Step呢?就是前一篇提到的Transform[Add constants]
將民國年、月、日與日期分隔符號來進行字串的組合,一樣是使用到前一篇的Calculator
由於Calculator只提供3種欄位的相加,所以必須進行兩次的運算才能得到完整的年月日與分格符號的加總,設定方式如下圖
由於資料處理的過程,一定會透過一些額外的欄位來輔助,而已經使用完畢的欄位,一直出現在眼前也是挺干擾的,所以我們就來把這些欄位通通都拿掉,保留必要的資訊就好。
請切換到Remove頁籤,將不需要的欄位給移除掉,說白一點就是,把沒有利用價值的欄位都刪掉XD
在這邊,會發現我把所有的Step名稱都打上描述了,方便我們了解整個處理的邏輯,修改名稱設定方式就是點兩下Step,在Step name上進行文字輸入即可,回歸正題,我們想把"民國年月日"的欄位名稱改成"生日"
請切換到Select & Alter頁籤,按一下Get Fields to select,來選擇我們要顯示的欄位,並且在第4項的Rename to上輸入"生日"
終於!完成了民國年月日的轉號囉
我想有些人看到這邊已經吐血了,感覺這種東西就Excel套用公式一下就做完了,幹嘛用Kettle在那邊設定一大堆勒!的確,如果是這種需求我也絕對不會用Kettle做XDDDD(被扁),啊...就是個操作範例讓大家感受一下[Transform]中的Add constants、Calculator、Select Values、String operations的功能,其實看似功能很簡單的Step,在後續其實都會發揮很大的功用,而在這兩篇的操作中,大家又認識了一些Step,當我們認識的Step越多時,可以應用的範圍就又更廣囉!
下一篇將繼續介紹以上這些Transform將如何直接用[Scripting]Modified Java Script Value值接通通取代掉XD,有好東西幹嘛不早講(再次被打),不過有瞭解才有選擇,如果不會寫js就可以透過這兩篇的方式去進行一些資料的分析運算與組合,如果會寫js,那Modified Java Script Value就是另外提供另外一種資料處理的方式,各有優點缺,大家可以在自行評估自己適合哪一種。